package ve.usb.crm.hibernate;

import ve.usb.cohesion.runtime.LocalDate;

public class Documento implements java.io.Serializable, ve.usb.cohesion.runtime.Auditable {

    /** Creates a new instance of Documento */
    public Documento() {}

    /**
     * Holds value of property id.
     */
    private Long id;

    /**
     * Getter for property id.
     * @return Value of property id.
     */
    public Long getId() {
        return this.id;
    }

    /**
     * Holds value of property idDocumento.
     */
    private long idDocumento;

    /**
     * Getter for property idDocumento.
     * @return Value of property idDocumento.
     */
    public long getIdDocumento() {
        return this.idDocumento;
    }

    /**
     * Setter for property idDocumento.
     * @param idDocumento New value of property idDocumento.
     */
    public void setIdDocumento(long idDocumento) {
        this.id = this.idDocumento = idDocumento;
    }

    /**
     * Holds value of property nombre.
     */
    private String nombre = "";

    /**
     * Getter for property nombre.
     * @return Value of property nombre.
     */
    public String getNombre() {
        return this.nombre;
    }

    /**
     * Setter for property nombre.
     * @param nombre New value of property nombre.
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    /**
     * Holds value of property descripcion.
     */
    private String descripcion = "";

    /**
     * Getter for property descripcion.
     * @return Value of property descripcion.
     */
    public String getDescripcion() {
        return this.descripcion;
    }

    /**
     * Setter for property descripcion.
     * @param descripcion New value of property descripcion.
     */
    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    /**
     * Holds value of property enlace.
     */
    private String enlace = "";

    /**
     * Getter for property enlace.
     * @return Value of property enlace.
     */
    public String getEnlace() {
        return this.enlace;
    }

    /**
     * Setter for property enlace.
     * @param enlace New value of property enlace.
     */
    public void setEnlace(String enlace) {
        this.enlace = enlace;
    }

    /**
     * Holds value of property fechaCarga.
     */
    private java.util.Date fechaCarga;

    /**
     * Getter for property fechaCarga.
     * @return Value of property fechaCarga.
     */
    public java.util.Date getFechaCarga() {
        return this.fechaCarga;
    }

    /**
     * Setter for property fechaCarga.
     * @param fechaCarga New value of property fechaCarga.
     */
    public void setFechaCarga(java.util.Date fechaCarga) {
        if (fechaCarga==null || fechaCarga instanceof LocalDate)
            this.fechaCarga = fechaCarga;
        else this.fechaCarga = new LocalDate(fechaCarga);
    }

    /**
     * Holds value of property personalCarga.
     */
    private Personal personalCarga;

    /**
     * Getter for property personalCarga.
     * @return Value of property personalCarga.
     */
    public Personal getPersonalCarga() {
        return this.personalCarga;
    }

    /**
     * Setter for property personalCarga.
     * @param personalCarga New value of property personalCarga.
     */
    public void setPersonalCarga(Personal personalCarga) {
        this.personalCarga = personalCarga;
    }
    /**
     * Holds value of property idOportunidad.
     */
    private long asociadoA;

    /**
     * Getter for property idOportunidad.
     * @return Value of property idOportunidad.
     */
    public long getAsociadoA() {
        return this.asociadoA;
    }

    /**
     * Setter for property idOportunidad.
     * @param idOportunidad New value of property idOportunidad.
     */
    public void setAsociadoA(long asociadoA) {
        this.asociadoA = asociadoA;
    }
    /**
     * Holds value of property idProyecto.
     */
    private boolean esProyecto;

    /**
     * Getter for property idProyecto.
     * @return Value of property idProyecto.
     */
    public boolean getEsProyecto() {
        return this.esProyecto;
    }

    /**
     * Setter for property idProyecto.
     * @param idProyecto New value of property idProyecto.
     */
    public void setEsProyecto(boolean esProyecto) {
        this.esProyecto = esProyecto;
    }

     /**
     * Holds value of property nombre.
     */
    private String contentType = "";

    /**
     * Getter for property nombre.
     * @return Value of property nombre.
     */
    public String getContentType() {
        return this.contentType;
    }

    /**
     * Setter for property nombre.
     * @param nombre New value of property nombre.
     */
    public void setContentType(String contentType) {
        this.contentType = contentType;
    }

    public String toString() {
        return "<Documento id='C" + this.id +
      //idDocumento
      "\" nombre =\"" + nombre +
      "\" descripcion =\"" + descripcion +
      "\" enlace =\"" + enlace +
      "\" fechaCarga =\"" + fechaCarga +
        ((personalCarga==null) ? "" : "\" personalCarga =\"C" + personalCarga.getId()) +
        "'/>";
    }

}